package com.hbwxz.admin.task;

import com.hbwxz.admin.pojo.CommoditySkuUpError;
import com.hbwxz.admin.repo.CommodityBrandRepository;
import com.hbwxz.admin.repo.CommoditySkuRepository;
import com.hbwxz.admin.repo.CommoditySkuUpErrorRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Scheduled;

import java.util.ArrayList;
import java.util.List;

@Configuration
public class CommodityOnSaleErrorTask {

    @Autowired
    private CommoditySkuUpErrorRepository commoditySkuUpErrorRepository;

    @Autowired
    private CommoditySkuRepository commoditySkuRepository;


    //    @Scheduled(cron = "0 */5 * * * ?")
    @Scheduled(cron = "*/10 * * * * ?")
    public void commodityOnSaleError() {
        System.out.println("Start to do the error handle.... ");
        List<CommoditySkuUpError> skuUpErrors = commoditySkuUpErrorRepository.searchByEpochAndStatus();
        List<Object> skus = new ArrayList<>();
        skuUpErrors.forEach(skuUpError -> {
            skus.add(skuUpError.getSkuId());
        });
        try {
            commoditySkuRepository.updateSkuOnSaleStatus(skus);
            skuUpErrors.forEach(skuUpError -> {
                skuUpError.setEpoch(skuUpError.getEpoch()+1);
                skuUpError.setStatus(1);
            });
            commoditySkuUpErrorRepository.saveAll(skuUpErrors);
            System.out.println("Success .... to do the error handle");
        } catch (Exception e) {
            skuUpErrors.forEach(skuUpError -> {
                int currEpoch = skuUpError.getEpoch();
                if(currEpoch == 1){
                    //人工
                }
                skuUpError.setEpoch(currEpoch+1);
            });
            commoditySkuUpErrorRepository.saveAll(skuUpErrors);
        }
    }

}
